# -*- coding: utf-8 -*- 

###########################################################################
## Python code generated with wxFormBuilder (version Feb  9 2012)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################

from MyAuiNotebook import MyAuiNotebook
import wx
import wx.xrc
import wx.aui

###########################################################################
## Class UIFrame
###########################################################################

class UIFrame ( wx.Frame ):
	
	def __init__( self, parent ):
		wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"Epistasis On Grid", pos = wx.DefaultPosition, size = wx.Size( 1024,768 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
		
		self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
		self.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_GRAYTEXT ) )
		self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_GRAYTEXT ) )
		
		self.m_statusBar = self.CreateStatusBar( 1, wx.ST_SIZEGRIP, wx.ID_ANY )
		self.m_menubar = wx.MenuBar( 0 )
		self.menu_file = wx.Menu()
		self.file_new_project = wx.MenuItem( self.menu_file, wx.ID_ANY, u"&New Project", wx.EmptyString, wx.ITEM_NORMAL )
		self.menu_file.AppendItem( self.file_new_project )
		
		self.file_open_project = wx.MenuItem( self.menu_file, wx.ID_ANY, u"&Open Project", wx.EmptyString, wx.ITEM_NORMAL )
		self.menu_file.AppendItem( self.file_open_project )
		
		self.file_recent_projects = wx.Menu()
		self.m_menuItem12 = wx.MenuItem( self.file_recent_projects, wx.ID_ANY, u"no recent projects", wx.EmptyString, wx.ITEM_NORMAL )
		self.file_recent_projects.AppendItem( self.m_menuItem12 )
		self.m_menuItem12.Enable( False )
		
		self.menu_file.AppendSubMenu( self.file_recent_projects, u"Recent Projects" )
		
		self.file_close_project = wx.MenuItem( self.menu_file, wx.ID_ANY, u"&Close Project", wx.EmptyString, wx.ITEM_NORMAL )
		self.menu_file.AppendItem( self.file_close_project )
		self.file_close_project.Enable( False )
		
		self.menu_file.AppendSeparator()
		
		self.file_exit = wx.MenuItem( self.menu_file, wx.ID_ANY, u"&Exit", wx.EmptyString, wx.ITEM_NORMAL )
		self.menu_file.AppendItem( self.file_exit )
		
		self.m_menubar.Append( self.menu_file, u"&File" ) 
		
		self.menu_epistasis = wx.Menu()
		self.start_epistasis = wx.MenuItem( self.menu_epistasis, wx.ID_ANY, u"&Epistasis analysis", wx.EmptyString, wx.ITEM_NORMAL )
		self.menu_epistasis.AppendItem( self.start_epistasis )
		self.start_epistasis.Enable( False )
		
		self.start_case_control = wx.MenuItem( self.menu_epistasis, wx.ID_ANY, u"Case control", wx.EmptyString, wx.ITEM_NORMAL )
		self.menu_epistasis.AppendItem( self.start_case_control )
		self.start_case_control.Enable( False )
		
		self.m_menubar.Append( self.menu_epistasis, u"&Analysis" ) 
		
		self.menu_data = wx.Menu()
		self.m_menuItem73 = wx.MenuItem( self.menu_data, wx.ID_ANY, u"Project overview", wx.EmptyString, wx.ITEM_NORMAL )
		self.menu_data.AppendItem( self.m_menuItem73 )
		self.m_menuItem73.Enable( False )
		
		self.m_menuItem10 = wx.MenuItem( self.menu_data, wx.ID_ANY, u"Gene finder", wx.EmptyString, wx.ITEM_NORMAL )
		self.menu_data.AppendItem( self.m_menuItem10 )
		self.m_menuItem10.Enable( False )
		
		self.m_menuItem11 = wx.MenuItem( self.menu_data, wx.ID_ANY, u"Reimport partition", wx.EmptyString, wx.ITEM_NORMAL )
		self.menu_data.AppendItem( self.m_menuItem11 )
		self.m_menuItem11.Enable( False )
		
		self.m_menubar.Append( self.menu_data, u"&Data" ) 
		
		self.menu_help = wx.Menu()
		self.help_documentation = wx.MenuItem( self.menu_help, wx.ID_ANY, u"Documentation", wx.EmptyString, wx.ITEM_NORMAL )
		self.menu_help.AppendItem( self.help_documentation )
		
		self.help_about = wx.MenuItem( self.menu_help, wx.ID_ANY, u"&About", wx.EmptyString, wx.ITEM_NORMAL )
		self.menu_help.AppendItem( self.help_about )
		
		self.m_menubar.Append( self.menu_help, u"&Help" ) 
		
		self.SetMenuBar( self.m_menubar )
		
		bSizer48 = wx.BoxSizer( wx.VERTICAL )
		
		self.startup_page = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.Size( -1,-1 ), wx.TAB_TRAVERSAL )
		self.startup_page.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_GRAYTEXT ) )
		
		bSizer47 = wx.BoxSizer( wx.VERTICAL )
		
		
		bSizer47.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 )
		
		bSizer21 = wx.BoxSizer( wx.HORIZONTAL )
		
		
		bSizer21.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 )
		
		self.startup_menu = wx.Panel( self.startup_page, wx.ID_ANY, wx.DefaultPosition, wx.Size( 500,500 ), wx.RAISED_BORDER|wx.TAB_TRAVERSAL )
		self.startup_menu.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
		
		bSizer20 = wx.BoxSizer( wx.VERTICAL )
		
		self.m_staticText11 = wx.StaticText( self.startup_menu, wx.ID_ANY, u"Welcome to Epistasis Analysis", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText11.Wrap( 500 )
		self.m_staticText11.SetFont( wx.Font( 14, 70, 90, 92, False, wx.EmptyString ) )
		
		bSizer20.Add( self.m_staticText11, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
		
		self.m_staticline1 = wx.StaticLine( self.startup_menu, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL )
		bSizer20.Add( self.m_staticline1, 0, wx.EXPAND |wx.ALL, 5 )
		
		bSizer24 = wx.BoxSizer( wx.HORIZONTAL )
		
		self.m_bitmap2 = wx.StaticBitmap( self.startup_menu, wx.ID_ANY, wx.Bitmap( u"images/dnasmaller.jpg", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 )
		bSizer24.Add( self.m_bitmap2, 0, wx.ALL, 5 )
		
		bSizer22 = wx.BoxSizer( wx.VERTICAL )
		
		gSizer4 = wx.GridSizer( 0, 2, 0, 0 )
		
		self.m_staticText12 = wx.StaticText( self.startup_menu, wx.ID_ANY, u"New project", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText12.Wrap( -1 )
		self.m_staticText12.SetFont( wx.Font( 12, 70, 90, 90, False, wx.EmptyString ) )
		
		gSizer4.Add( self.m_staticText12, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.m_bpButton2 = wx.BitmapButton( self.startup_menu, wx.ID_ANY, wx.Bitmap( u"images/project_icons/folder_add_48.png", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, wx.BU_AUTODRAW )
		gSizer4.Add( self.m_bpButton2, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.m_staticText13 = wx.StaticText( self.startup_menu, wx.ID_ANY, u"Open project", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText13.Wrap( -1 )
		self.m_staticText13.SetFont( wx.Font( 12, 70, 90, 90, False, wx.EmptyString ) )
		
		gSizer4.Add( self.m_staticText13, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
		
		self.m_bpButton1 = wx.BitmapButton( self.startup_menu, wx.ID_ANY, wx.Bitmap( u"images/project_icons/open_48.png", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, wx.BU_AUTODRAW )
		gSizer4.Add( self.m_bpButton1, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.m_staticText14 = wx.StaticText( self.startup_menu, wx.ID_ANY, u"Open recent project", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText14.Wrap( 100 )
		self.m_staticText14.SetFont( wx.Font( 12, 70, 90, 90, False, wx.EmptyString ) )
		
		gSizer4.Add( self.m_staticText14, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
		
		recent_prj_choiceChoices = [ u"no recent projects" ]
		self.recent_prj_choice = wx.Choice( self.startup_menu, wx.ID_ANY, wx.DefaultPosition, wx.Size( 150,-1 ), recent_prj_choiceChoices, 0 )
		self.recent_prj_choice.SetSelection( 0 )
		self.recent_prj_choice.Enable( False )
		
		gSizer4.Add( self.recent_prj_choice, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		
		bSizer22.Add( gSizer4, 1, wx.EXPAND, 5 )
		
		
		bSizer24.Add( bSizer22, 1, wx.EXPAND|wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		
		bSizer20.Add( bSizer24, 1, wx.EXPAND|wx.ALL, 5 )
		
		
		self.startup_menu.SetSizer( bSizer20 )
		self.startup_menu.Layout()
		bSizer21.Add( self.startup_menu, 1, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		
		bSizer21.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 )
		
		
		bSizer47.Add( bSizer21, 0, wx.ALIGN_CENTER_HORIZONTAL, 5 )
		
		
		bSizer47.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 )
		
		
		self.startup_page.SetSizer( bSizer47 )
		self.startup_page.Layout()
		bSizer47.Fit( self.startup_page )
		bSizer48.Add( self.startup_page, 1, wx.ALL|wx.EXPAND, 5 )
		
		self.contents = MyAuiNotebook( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.aui.AUI_NB_DEFAULT_STYLE )
		self.contents.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_GRAYTEXT ) )
		self.contents.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_GRAYTEXT ) )
		self.contents.Hide()
		
		
		bSizer48.Add( self.contents, 1, wx.EXPAND |wx.ALL, 5 )
		
		
		self.SetSizer( bSizer48 )
		self.Layout()
		
		# Connect Events
		self.Bind( wx.EVT_CLOSE, self.OnCloseMainUIFrame )
		self.Bind( wx.EVT_MENU, self.OnNewProjectClick, id = self.file_new_project.GetId() )
		self.Bind( wx.EVT_MENU, self.OnOpenProjectClick, id = self.file_open_project.GetId() )
		self.Bind( wx.EVT_MENU, self.OnOpenRecent, id = self.m_menuItem12.GetId() )
		self.Bind( wx.EVT_MENU, self.OnCloseProjectClick, id = self.file_close_project.GetId() )
		self.Bind( wx.EVT_MENU, self.OnCloseMainUIFrame, id = self.file_exit.GetId() )
		self.Bind( wx.EVT_MENU, self.OnGridEpistasisClick, id = self.start_epistasis.GetId() )
		self.Bind( wx.EVT_MENU, self.OnCaseControlClick, id = self.start_case_control.GetId() )
		self.Bind( wx.EVT_MENU, self.OnMenuProjectOverview, id = self.m_menuItem73.GetId() )
		self.Bind( wx.EVT_MENU, self.OnGeneFinder, id = self.m_menuItem10.GetId() )
		self.Bind( wx.EVT_MENU, self.OnImportPartition, id = self.m_menuItem11.GetId() )
		self.Bind( wx.EVT_MENU, self.OnDocumentationClick, id = self.help_documentation.GetId() )
		self.Bind( wx.EVT_MENU, self.OnAboutClick, id = self.help_about.GetId() )
		self.m_bpButton2.Bind( wx.EVT_BUTTON, self.OnNewProjectClick )
		self.m_bpButton1.Bind( wx.EVT_BUTTON, self.OnOpenProjectClick )
		self.recent_prj_choice.Bind( wx.EVT_CHOICE, self.OnOpenRecent )
		self.contents.Bind( wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE, self.OnPageClosed )
	
	def __del__( self ):
		pass
	
	
	# Virtual event handlers, overide them in your derived class
	def OnCloseMainUIFrame( self, event ):
		event.Skip()
	
	def OnNewProjectClick( self, event ):
		event.Skip()
	
	def OnOpenProjectClick( self, event ):
		event.Skip()
	
	def OnOpenRecent( self, event ):
		event.Skip()
	
	def OnCloseProjectClick( self, event ):
		event.Skip()
	
	
	def OnGridEpistasisClick( self, event ):
		event.Skip()
	
	def OnCaseControlClick( self, event ):
		event.Skip()
	
	def OnMenuProjectOverview( self, event ):
		event.Skip()
	
	def OnGeneFinder( self, event ):
		event.Skip()
	
	def OnImportPartition( self, event ):
		event.Skip()
	
	def OnDocumentationClick( self, event ):
		event.Skip()
	
	def OnAboutClick( self, event ):
		event.Skip()
	
	
	
	
	def OnPageClosed( self, event ):
		event.Skip()
	

###########################################################################
## Class AboutFrame
###########################################################################

class AboutFrame ( wx.Frame ):
	
	def __init__( self, parent ):
		wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"About", pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
		
		self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
		
		bSizer2 = wx.BoxSizer( wx.HORIZONTAL )
		
		self.m_bitmap1 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"images/blackmouse.jpg", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 )
		bSizer2.Add( self.m_bitmap1, 0, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.m_panel2 = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
		bSizer5 = wx.BoxSizer( wx.HORIZONTAL )
		
		bSizer4 = wx.BoxSizer( wx.VERTICAL )
		
		self.m_staticText2 = wx.StaticText( self.m_panel2, wx.ID_ANY, u"Epistasis On Grid", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText2.Wrap( -1 )
		bSizer4.Add( self.m_staticText2, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )
		
		
		bSizer4.AddSpacer( ( 0, 0), 0, wx.EXPAND, 5 )
		
		self.m_staticText4 = wx.StaticText( self.m_panel2, wx.ID_ANY, u"By Mogens Fenger and Benjamin Sedoc", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText4.Wrap( -1 )
		bSizer4.Add( self.m_staticText4, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )
		
		self.m_staticText5 = wx.StaticText( self.m_panel2, wx.ID_ANY, u"2011-2012", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText5.Wrap( -1 )
		bSizer4.Add( self.m_staticText5, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )
		
		
		bSizer5.Add( bSizer4, 1, wx.EXPAND, 5 )
		
		
		self.m_panel2.SetSizer( bSizer5 )
		self.m_panel2.Layout()
		bSizer5.Fit( self.m_panel2 )
		bSizer2.Add( self.m_panel2, 1, wx.ALL|wx.EXPAND, 5 )
		
		
		self.SetSizer( bSizer2 )
		self.Layout()
		
		self.Centre( wx.BOTH )
	
	def __del__( self ):
		pass
	

###########################################################################
## Class GeneFinder
###########################################################################

class GeneFinder ( wx.Frame ):
	
	def __init__( self, parent ):
		wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"Gene finder", pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
		
		self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
		
		bSizer47 = wx.BoxSizer( wx.VERTICAL )
		
		self.m_panel16 = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
		bSizer48 = wx.BoxSizer( wx.VERTICAL )
		
		bSizer49 = wx.BoxSizer( wx.HORIZONTAL )
		
		self.m_staticText40 = wx.StaticText( self.m_panel16, wx.ID_ANY, u"Gene finder (Entrez)", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText40.Wrap( -1 )
		self.m_staticText40.SetFont( wx.Font( 14, 74, 90, 90, False, "sans" ) )
		
		bSizer49.Add( self.m_staticText40, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL|wx.TOP|wx.RIGHT|wx.LEFT, 5 )
		
		bSizer50 = wx.BoxSizer( wx.VERTICAL )
		
		self.m_bitmap8 = wx.StaticBitmap( self.m_panel16, wx.ID_ANY, wx.Bitmap( u"images/Entrez30px.png", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 )
		bSizer50.Add( self.m_bitmap8, 0, wx.ALIGN_RIGHT|wx.TOP|wx.RIGHT|wx.LEFT, 5 )
		
		
		bSizer49.Add( bSizer50, 0, 0, 5 )
		
		
		bSizer48.Add( bSizer49, 0, wx.EXPAND, 5 )
		
		self.m_staticline8 = wx.StaticLine( self.m_panel16, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL )
		bSizer48.Add( self.m_staticline8, 0, wx.ALL|wx.EXPAND, 5 )
		
		self.m_staticText41 = wx.StaticText( self.m_panel16, wx.ID_ANY, u"Would you like to find and download gene information for the imported SNPs?", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText41.Wrap( 450 )
		bSizer48.Add( self.m_staticText41, 0, wx.ALL, 5 )
		
		self.m_staticText42 = wx.StaticText( self.m_panel16, wx.ID_ANY, u"This will take several minutes depending on the number of SNPs in your database.", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText42.Wrap( 450 )
		self.m_staticText42.SetFont( wx.Font( 10, 74, 93, 90, False, "sans" ) )
		
		bSizer48.Add( self.m_staticText42, 0, wx.ALL, 5 )
		
		
		bSizer48.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 )
		
		self.m_staticline9 = wx.StaticLine( self.m_panel16, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL )
		bSizer48.Add( self.m_staticline9, 0, wx.EXPAND |wx.ALL, 5 )
		
		m_sdbSizer2 = wx.StdDialogButtonSizer()
		self.m_sdbSizer2OK = wx.Button( self.m_panel16, wx.ID_OK )
		m_sdbSizer2.AddButton( self.m_sdbSizer2OK )
		self.m_sdbSizer2Cancel = wx.Button( self.m_panel16, wx.ID_CANCEL )
		m_sdbSizer2.AddButton( self.m_sdbSizer2Cancel )
		m_sdbSizer2.Realize();
		
		bSizer48.Add( m_sdbSizer2, 0, wx.EXPAND, 5 )
		
		
		self.m_panel16.SetSizer( bSizer48 )
		self.m_panel16.Layout()
		bSizer48.Fit( self.m_panel16 )
		bSizer47.Add( self.m_panel16, 1, wx.EXPAND |wx.ALL, 5 )
		
		
		self.SetSizer( bSizer47 )
		self.Layout()
		
		self.Centre( wx.BOTH )
		
		# Connect Events
		self.m_sdbSizer2Cancel.Bind( wx.EVT_BUTTON, self.OnCancel )
		self.m_sdbSizer2OK.Bind( wx.EVT_BUTTON, self.OnFindGeneInfo )
	
	def __del__( self ):
		pass
	
	
	# Virtual event handlers, overide them in your derived class
	def OnCancel( self, event ):
		event.Skip()
	
	def OnFindGeneInfo( self, event ):
		event.Skip()
	

###########################################################################
## Class project_menu
###########################################################################

class project_menu ( wx.Frame ):
	
	def __init__( self, parent ):
		wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"About", pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
		
		self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
		
		bSizer2 = wx.BoxSizer( wx.HORIZONTAL )
		
		
		self.SetSizer( bSizer2 )
		self.Layout()
		
		self.Centre( wx.BOTH )
	
	def __del__( self ):
		pass
	

###########################################################################
## Class startup_panel
###########################################################################

class startup_panel ( wx.Panel ):
	
	def __init__( self, parent ):
		wx.Panel.__init__ ( self, parent, id = wx.ID_ANY, pos = wx.DefaultPosition, size = wx.Size( 800,600 ), style = wx.TAB_TRAVERSAL )
		
		bSizer12 = wx.BoxSizer( wx.VERTICAL )
		
		
		bSizer12.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 )
		
		bSizer21 = wx.BoxSizer( wx.HORIZONTAL )
		
		
		bSizer21.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 )
		
		self.startup_menu = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.Size( -1,-1 ), wx.RAISED_BORDER|wx.TAB_TRAVERSAL )
		self.startup_menu.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
		self.startup_menu.SetMinSize( wx.Size( 150,350 ) )
		self.startup_menu.SetMaxSize( wx.Size( 500,-1 ) )
		
		bSizer20 = wx.BoxSizer( wx.VERTICAL )
		
		self.m_staticText11 = wx.StaticText( self.startup_menu, wx.ID_ANY, u"Welcome to Epistasis Analysis", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText11.Wrap( 500 )
		self.m_staticText11.SetFont( wx.Font( 14, 70, 90, 92, False, wx.EmptyString ) )
		
		bSizer20.Add( self.m_staticText11, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
		
		self.m_staticline1 = wx.StaticLine( self.startup_menu, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL )
		bSizer20.Add( self.m_staticline1, 0, wx.EXPAND |wx.ALL, 5 )
		
		bSizer24 = wx.BoxSizer( wx.HORIZONTAL )
		
		self.m_bitmap2 = wx.StaticBitmap( self.startup_menu, wx.ID_ANY, wx.Bitmap( u"images/dnasmaller.jpg", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 )
		bSizer24.Add( self.m_bitmap2, 0, wx.ALL, 5 )
		
		bSizer22 = wx.BoxSizer( wx.VERTICAL )
		
		gSizer4 = wx.GridSizer( 0, 2, 0, 0 )
		
		self.m_staticText12 = wx.StaticText( self.startup_menu, wx.ID_ANY, u"New project", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText12.Wrap( -1 )
		self.m_staticText12.SetFont( wx.Font( 12, 70, 90, 90, False, wx.EmptyString ) )
		
		gSizer4.Add( self.m_staticText12, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.m_bpButton2 = wx.BitmapButton( self.startup_menu, wx.ID_ANY, wx.Bitmap( u"images/project_icons/folder_add_48.png", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, wx.BU_AUTODRAW )
		gSizer4.Add( self.m_bpButton2, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.m_staticText13 = wx.StaticText( self.startup_menu, wx.ID_ANY, u"Open project", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText13.Wrap( -1 )
		self.m_staticText13.SetFont( wx.Font( 12, 70, 90, 90, False, wx.EmptyString ) )
		
		gSizer4.Add( self.m_staticText13, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
		
		self.m_bpButton1 = wx.BitmapButton( self.startup_menu, wx.ID_ANY, wx.Bitmap( u"images/project_icons/open_48.png", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, wx.BU_AUTODRAW )
		gSizer4.Add( self.m_bpButton1, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.m_staticText14 = wx.StaticText( self.startup_menu, wx.ID_ANY, u"Open recent project", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText14.Wrap( 100 )
		self.m_staticText14.SetFont( wx.Font( 12, 70, 90, 90, False, wx.EmptyString ) )
		
		gSizer4.Add( self.m_staticText14, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
		
		recent_prj_choiceChoices = [ u"/home/benjamin/Documents/epiprojects/my_project/my_prj.epiprj" ]
		self.recent_prj_choice = wx.Choice( self.startup_menu, wx.ID_ANY, wx.DefaultPosition, wx.Size( 150,-1 ), recent_prj_choiceChoices, 0 )
		self.recent_prj_choice.SetSelection( 0 )
		gSizer4.Add( self.recent_prj_choice, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		
		bSizer22.Add( gSizer4, 1, wx.EXPAND, 5 )
		
		
		bSizer24.Add( bSizer22, 1, wx.EXPAND|wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		
		bSizer20.Add( bSizer24, 1, wx.EXPAND|wx.ALL, 5 )
		
		
		self.startup_menu.SetSizer( bSizer20 )
		self.startup_menu.Layout()
		bSizer20.Fit( self.startup_menu )
		bSizer21.Add( self.startup_menu, 1, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		
		bSizer21.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 )
		
		
		bSizer12.Add( bSizer21, 1, wx.EXPAND, 5 )
		
		
		bSizer12.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 )
		
		
		self.SetSizer( bSizer12 )
		self.Layout()
		
		# Connect Events
		self.m_bpButton2.Bind( wx.EVT_BUTTON, self.onNewProjectClick )
		self.m_bpButton1.Bind( wx.EVT_BUTTON, self.onOpenProjectClick )
		self.recent_prj_choice.Bind( wx.EVT_CHOICE, self.onStartupOpenRecent )
	
	def __del__( self ):
		pass
	
	
	# Virtual event handlers, overide them in your derived class
	def onNewProjectClick( self, event ):
		event.Skip()
	
	def onOpenProjectClick( self, event ):
		event.Skip()
	
	def onStartupOpenRecent( self, event ):
		event.Skip()
	

###########################################################################
## Class ProjectOverview
###########################################################################

class ProjectOverview ( wx.Panel ):
	
	def __init__( self, parent ):
		wx.Panel.__init__ ( self, parent, id = wx.ID_ANY, pos = wx.DefaultPosition, size = wx.Size( 800,600 ), style = wx.TAB_TRAVERSAL )
		
		self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_APPWORKSPACE ) )
		
		bSizer50 = wx.BoxSizer( wx.VERTICAL )
		
		bSizer54 = wx.BoxSizer( wx.HORIZONTAL )
		
		bSizer55 = wx.BoxSizer( wx.VERTICAL )
		
		
		bSizer54.Add( bSizer55, 0, 0, 5 )
		
		self.prjoverviewlabel = wx.StaticText( self, wx.ID_ANY, u"Project overview", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.prjoverviewlabel.Wrap( -1 )
		self.prjoverviewlabel.SetFont( wx.Font( 14, 74, 90, 90, False, "sans" ) )
		
		bSizer54.Add( self.prjoverviewlabel, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.m_bitmap8 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap( u"images/helix.gif", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 )
		bSizer54.Add( self.m_bitmap8, 0, wx.ALL, 5 )
		
		
		bSizer50.Add( bSizer54, 0, wx.EXPAND, 5 )
		
		self.m_staticline7 = wx.StaticLine( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL )
		bSizer50.Add( self.m_staticline7, 0, wx.ALL|wx.EXPAND, 5 )
		
		gSizer7 = wx.GridSizer( 0, 2, 0, 0 )
		
		self.m_staticText32 = wx.StaticText( self, wx.ID_ANY, u"Name", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText32.Wrap( -1 )
		gSizer7.Add( self.m_staticText32, 0, wx.ALL, 5 )
		
		self.prj_name = wx.StaticText( self, wx.ID_ANY, u"My project", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.prj_name.Wrap( -1 )
		gSizer7.Add( self.prj_name, 0, wx.ALL, 5 )
		
		self.m_staticText34 = wx.StaticText( self, wx.ID_ANY, u"Genotypes", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText34.Wrap( -1 )
		gSizer7.Add( self.m_staticText34, 0, wx.ALL, 5 )
		
		self.num_genotypes = wx.StaticText( self, wx.ID_ANY, u"6003", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.num_genotypes.Wrap( -1 )
		gSizer7.Add( self.num_genotypes, 0, wx.ALL, 5 )
		
		self.m_staticText36 = wx.StaticText( self, wx.ID_ANY, u"Phenotypes", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText36.Wrap( -1 )
		gSizer7.Add( self.m_staticText36, 0, wx.ALL, 5 )
		
		self.num_phenotypes = wx.StaticText( self, wx.ID_ANY, u"52", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.num_phenotypes.Wrap( -1 )
		gSizer7.Add( self.num_phenotypes, 0, wx.ALL, 5 )
		
		self.m_staticText38 = wx.StaticText( self, wx.ID_ANY, u"Partitions", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText38.Wrap( -1 )
		gSizer7.Add( self.m_staticText38, 0, wx.ALL, 5 )
		
		self.num_classes = wx.StaticText( self, wx.ID_ANY, u"15", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.num_classes.Wrap( -1 )
		gSizer7.Add( self.num_classes, 0, wx.ALL, 5 )
		
		self.m_staticText40 = wx.StaticText( self, wx.ID_ANY, u"Subjects", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText40.Wrap( -1 )
		gSizer7.Add( self.m_staticText40, 0, wx.ALL, 5 )
		
		self.num_subjects = wx.StaticText( self, wx.ID_ANY, u"7540", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.num_subjects.Wrap( -1 )
		gSizer7.Add( self.num_subjects, 0, wx.ALL, 5 )
		
		self.genotype_file = wx.StaticText( self, wx.ID_ANY, u"Genotype file", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.genotype_file.Wrap( -1 )
		gSizer7.Add( self.genotype_file, 0, wx.ALL, 5 )
		
		self.genotype_file = wx.StaticText( self, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.genotype_file.Wrap( -1 )
		gSizer7.Add( self.genotype_file, 0, wx.ALL, 5 )
		
		self.m_staticText29 = wx.StaticText( self, wx.ID_ANY, u"Phenotype file", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText29.Wrap( -1 )
		gSizer7.Add( self.m_staticText29, 0, wx.ALL, 5 )
		
		self.phenotype_file = wx.StaticText( self, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.phenotype_file.Wrap( -1 )
		gSizer7.Add( self.phenotype_file, 0, wx.ALL, 5 )
		
		self.m_staticText31 = wx.StaticText( self, wx.ID_ANY, u"Partition file", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText31.Wrap( -1 )
		gSizer7.Add( self.m_staticText31, 0, wx.ALL, 5 )
		
		self.class_file = wx.StaticText( self, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.class_file.Wrap( -1 )
		gSizer7.Add( self.class_file, 0, wx.ALL, 5 )
		
		self.m_staticText33 = wx.StaticText( self, wx.ID_ANY, u"Project folder", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText33.Wrap( -1 )
		gSizer7.Add( self.m_staticText33, 0, wx.ALL, 5 )
		
		self.project_folder = wx.StaticText( self, wx.ID_ANY, u"MyLabel", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.project_folder.Wrap( -1 )
		gSizer7.Add( self.project_folder, 0, wx.ALL, 5 )
		
		self.m_staticText35 = wx.StaticText( self, wx.ID_ANY, u"Last opened", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText35.Wrap( -1 )
		self.m_staticText35.Hide()
		
		gSizer7.Add( self.m_staticText35, 0, wx.ALL, 5 )
		
		self.last_opened = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
		self.last_opened.Wrap( -1 )
		gSizer7.Add( self.last_opened, 0, wx.ALL, 5 )
		
		
		bSizer50.Add( gSizer7, 0, wx.ALL, 5 )
		
		
		self.SetSizer( bSizer50 )
		self.Layout()
	
	def __del__( self ):
		pass
	

###########################################################################
## Class ProgressPanel
###########################################################################

class ProgressPanel ( wx.Frame ):
	
	def __init__( self, parent ):
		wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 400,150 ), style = wx.FRAME_FLOAT_ON_PARENT|wx.TAB_TRAVERSAL )
		
		self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
		
		bSizer51 = wx.BoxSizer( wx.VERTICAL )
		
		self.m_panel15 = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
		bSizer45 = wx.BoxSizer( wx.VERTICAL )
		
		self.title = wx.StaticText( self.m_panel15, wx.ID_ANY, u"Processing...", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.title.Wrap( -1 )
		bSizer45.Add( self.title, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 )
		
		self.m_staticline7 = wx.StaticLine( self.m_panel15, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL )
		bSizer45.Add( self.m_staticline7, 0, wx.EXPAND |wx.ALL, 5 )
		
		self.progress_gauge = wx.Gauge( self.m_panel15, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.GA_HORIZONTAL )
		bSizer45.Add( self.progress_gauge, 0, wx.ALL|wx.EXPAND, 5 )
		
		cancel_btn = wx.StdDialogButtonSizer()
		self.cancel_btnCancel = wx.Button( self.m_panel15, wx.ID_CANCEL )
		cancel_btn.AddButton( self.cancel_btnCancel )
		cancel_btn.Realize();
		
		bSizer45.Add( cancel_btn, 1, wx.EXPAND, 5 )
		
		
		self.m_panel15.SetSizer( bSizer45 )
		self.m_panel15.Layout()
		bSizer45.Fit( self.m_panel15 )
		bSizer51.Add( self.m_panel15, 1, wx.EXPAND |wx.ALL, 5 )
		
		
		self.SetSizer( bSizer51 )
		self.Layout()
		
		self.Centre( wx.BOTH )
		
		# Connect Events
		self.cancel_btnCancel.Bind( wx.EVT_BUTTON, self.OnCancel )
	
	def __del__( self ):
		pass
	
	
	# Virtual event handlers, overide them in your derived class
	def OnCancel( self, event ):
		event.Skip()
	

